"""
日志工具模块
"""

import sys
from loguru import logger
from pathlib import Path
from typing import Optional

from .config import LoggingConfig


def setup_logger(config: Optional[LoggingConfig] = None, log_file: Optional[str] = None):
    """设置日志配置"""
    if config is None:
        config = LoggingConfig()
    
    # 移除默认处理器
    logger.remove()
    
    # 添加控制台处理器
    logger.add(
        sys.stdout,
        level=config.level,
        format=config.format,
        colorize=True
    )
    
    # 添加文件处理器（如果指定了日志文件）
    if log_file:
        log_path = Path(log_file)
        log_path.parent.mkdir(parents=True, exist_ok=True)
        
        logger.add(
            log_file,
            level=config.level,
            format=config.format,
            rotation="1 day",
            retention="7 days",
            compression="gz"
        )
    
    return logger


def get_logger(name: str = __name__):
    """获取日志记录器"""
    return logger.bind(name=name)
